// 商品参数模型
const { goodsDyAttr, goodsStaticAttr } = require('../../../models/category');
// 统一数据返回类
const { DataReturn } = require('../../../common/returnclass');

/**
 * @api {Delete} /categories/del_val/:type/:id/:attr_val 删除分类参数
 * @apiGroup Admin-Categories
 *
 * @apiParam {ObjectId} id 参数id
 * @apiParam {Number} type 1为动态参数 2为静态参数
 * @apiParam {String} attr_val 属性值
 *
 * @apiSuccess {Number} code 状态码
 * @apiSuccess {Object} data 返回数据
 * @apiSuccess {String} msg  返回消息
 */
module.exports = async (req, res) => {
	// type 1代表动态参数 2代表静态参数 cate_id 参数id attr_val 参数值
	let { type, id, attr_val } = req.params;
	
	let result;
	if (type == 1) {
		// 查询参数
		result = await goodsDyAttr.findOne({_id:id});
		// 分类已存在
		if (!result) return DataReturn.getData(res,400,[],'该参数值不存在');
		// 删除数据
		goodsDyAttr.updateOne({_id:id}, { $pull: { attr_vals: { $in: [attr_val] } } }, { multi: false })
		.then(()=>{
			DataReturn.getData(res,200,[],'删除成功')
		}).catch((err)=>{
			console.log('更新失败');
			DataReturn.getData(res,400,[],'删除失败')
		})
		
	} else {
		// 查询参数
		result = await goodsStaticAttr.findOne({_id:id});
		// 分类已存在
		if (!result) return DataReturn.getData(res,400,[],'该参数值不存在');
		// 更新数据
		goodsStaticAttr.updateOne({_id:id}, { $pull: { attr_vals: { $in: [attr_val] } } }, { multi: false })
		.then(()=>{
			DataReturn.getData(res,200,[],'删除成功')
		}).catch((err)=>{
			console.log('更新失败');
			DataReturn.getData(res,400,[],'删除失败')
		})
	}
}